eeaa3e01235c98421fecc46eaed877b207fb5a33,src/java/org/apache/cassandra/streaming/StreamTransferTask.java,StreamTransferTask,complete,#number#,62

Before Change


    public synchronized void complete(int sequenceNumber)
    {
        OutgoingFileMessage file = files.remove(sequenceNumber);
        if (file != null)
        {
            file.sstable.releaseReference();
            // all file sent, notify session this task is complete.
            if (files.isEmpty())
            {
                timeoutExecutor.shutdownNow();
                session.taskCompleted(this);
            }
        }
    }

After Change


    public void complete(int sequenceNumber)
    {
        boolean signalComplete;
        synchronized (this)
        {
            ScheduledFuture timeout = timeoutTasks.remove(sequenceNumber);
            if (timeout != null)
                timeout.cancel(false);

            OutgoingFileMessage file = files.remove(sequenceNumber);
            if (file != null)
                file.sstable.releaseReference();

            signalComplete = files.isEmpty();
        }

        // all file sent, notify session this task is complete.
        if (signalComplete)
            session.taskCompleted(this);
    }

    public synchronized void abort()